/* Example of recursive subroutine execution */
arg x 
call factorial x
say x'! =' result
exit

Factorial: procedure
        arg n                          /* recursive invocation */
        if n=0 then return 1
        call factorial n-1
        return result*n